package com.xzit.rental.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 配置mybatisPlus分页插件
 */

/*这是 Spring 框架提供的一个注解，用于标记当前类是一个配置类。Spring 容器在启动时会扫描被该注解标记的类，
    并解析其中定义的方法来创建相应的 Bean（对象实例），将其纳入到 Spring 容器的管理之中，
    这些 Bean 可以在项目的其他地方通过依赖注入等方式进行使用。*/
@Configuration
public class MybatisPlusConfig {

    /*该注解标注在方法上，用于向 Spring 容器中注册一个 Bean。在这里，被@Bean注解标记的
        mybatisPlusInterceptor方法返回的MybatisPlusInterceptor对象实例将会被 Spring 容器管理，
        其他组件如果需要使用这个拦截器实例，就可以通过依赖注入的方式获取。*/
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {

        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 为MybatisPlusInterceptor对象添加了一个分页插件拦截器。
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        // 配置乐观锁插件
        // interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;

    }

}